﻿Imports System.IO
Imports System.Configuration
Imports System.Data.OleDb

Module GenerarPreguntas

    Function CargarXLS(ByVal archivo As String, ByRef ds As DataSet, ByVal aleatorio As Boolean, ByVal limite As Integer) As Boolean
        Try
            'Leer el path del archivo Excel que tiene los datos del cliente
            Dim path As String = archivo
            'Si el archivo existe...
            If File.Exists(path) Then
                'Dimensionar los elementos necesarios para leer y cargar los datos
                Dim oConn As New OleDbConnection
                Dim oCmd As New OleDbCommand
                Dim oDa As New OleDbDataAdapter
                Dim oDs As New DataSet
                'Atención: Esta es la cadena de conexión. La misma lee el archivo especificado en el path
                oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                path & "; Extended Properties= Excel 8.0;"
                ' Abrir la conexión, y leer [Hoja 1] del archivo Excel
                oConn.Open()
                If aleatorio Then
                    If limite <= 0 Then
                        oCmd.CommandText = "SELECT * FROM [Hoja1$] ORDER BY RAND()"
                    Else
                        oCmd.CommandText = "SELECT * FROM [Hoja1$] ORDER BY RAND() LIMIT " & limite
                    End If
                Else
                    If limite <= 0 Then
                        oCmd.CommandText = "SELECT * FROM [Hoja1$]"
                    Else
                        oCmd.CommandText = "SELECT * FROM [Hoja1$] LIMIT " & limite
                    End If
                End If
                oCmd.Connection = oConn
                oDa.SelectCommand = oCmd
                'Llenar el DataSet
                oDa.Fill(oDs, "Preguntas")
                ds = oDs
                oConn.Close()
                Return True 'Enlazado exitoso!
            Else
                Return False 'Enlazado fallido!
            End If
        Catch ex As Exception
            'Aqui va el código que controle la excepción
            Return False 'Enlazado fallido!
        End Try
    End Function

End Module
